(0) Obligation:

Clauses:

perm(Xs, .(X, Ys)) :- ','(app(X1s, .(X, X2s), Xs), ','(app(X1s, X2s, Zs), perm(Zs, Ys))).
perm([], []).
app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs).
app([], Ys, Ys).

Query: perm(g,a)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

appA(.(T50, X92), T52, X93, .(T50, T51)) :- appA(X92, T52, X93, T51).
appA([], T60, T61, .(T60, T61)).
appB(.(T105, T106), T107, .(T105, X181)) :- appB(T106, T107, X181).
appB([], T113, T113).
appC(T87, T88, T89, .(T87, X151)) :- appB(T88, T89, X151).
appD(T131, T131).
permE(.(T24, T25), .(T26, T27)) :- appA(X43, T26, X44, T25).
permE(.(T24, T25), .(T26, T33)) :- ','(appA(T31, T26, T32, T25), appC(T24, T31, T32, X9)).
permE(.(T24, T25), .(T26, T33)) :- ','(appA(T31, T26, T32, T25), ','(appC(T24, T31, T32, T65), permE(T65, T33))).
permE(.(T125, T126), .(T125, T127)) :- appD(T126, X9).
permE(.(T125, T126), .(T125, T127)) :- ','(appD(T126, T128), permE(T128, T127)).
permE([], []).
permE([], []).

Query: permE(g,a)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
permE_in: (b,f)
appA_in: (f,f,f,b)
appC_in: (b,b,b,f)
appB_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T24, T25), .(T26, T27)) → U4_GA(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
PERME_IN_GA(.(T24, T25), .(T26, T27)) → APPA_IN_AAAG(X43, T26, X44, T25)
APPA_IN_AAAG(.(T50, X92), T52, X93, .(T50, T51)) → U1_AAAG(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
APPA_IN_AAAG(.(T50, X92), T52, X93, .(T50, T51)) → APPA_IN_AAAG(X92, T52, X93, T51)
PERME_IN_GA(.(T24, T25), .(T26, T33)) → U5_GA(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_GA(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → APPC_IN_GGGA(T24, T31, T32, X9)
APPC_IN_GGGA(T87, T88, T89, .(T87, X151)) → U3_GGGA(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
APPC_IN_GGGA(T87, T88, T89, .(T87, X151)) → APPB_IN_GGA(T88, T89, X151)
APPB_IN_GGA(.(T105, T106), T107, .(T105, X181)) → U2_GGA(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
APPB_IN_GGA(.(T105, T106), T107, .(T105, X181)) → APPB_IN_GGA(T106, T107, X181)
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_GA(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_GA(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_GA(T24, T25, T26, T33, permE_in_ga(T65, T33))
U7_GA(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → PERME_IN_GA(T65, T33)
PERME_IN_GA(.(T125, T126), .(T125, T127)) → U9_GA(T125, T126, T127, appD_in_ga(T126, X9))
PERME_IN_GA(.(T125, T126), .(T125, T127)) → APPD_IN_GA(T126, X9)
PERME_IN_GA(.(T125, T126), .(T125, T127)) → U10_GA(T125, T126, T127, appD_in_ga(T126, T128))
U10_GA(T125, T126, T127, appD_out_ga(T126, T128)) → U11_GA(T125, T126, T127, permE_in_ga(T128, T127))
U10_GA(T125, T126, T127, appD_out_ga(T126, T128)) → PERME_IN_GA(T128, T127)

The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x5)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x6)
U5_GA(x1, x2, x3, x4, x5)  =  U5_GA(x1, x5)
U6_GA(x1, x2, x3, x4, x5)  =  U6_GA(x5)
APPC_IN_GGGA(x1, x2, x3, x4)  =  APPC_IN_GGGA(x1, x2, x3)
U3_GGGA(x1, x2, x3, x4, x5)  =  U3_GGGA(x1, x5)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5)  =  U2_GGA(x1, x5)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x5)
U9_GA(x1, x2, x3, x4)  =  U9_GA(x4)
APPD_IN_GA(x1, x2)  =  APPD_IN_GA(x1)
U10_GA(x1, x2, x3, x4)  =  U10_GA(x4)
U11_GA(x1, x2, x3, x4)  =  U11_GA(x4)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T24, T25), .(T26, T27)) → U4_GA(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
PERME_IN_GA(.(T24, T25), .(T26, T27)) → APPA_IN_AAAG(X43, T26, X44, T25)
APPA_IN_AAAG(.(T50, X92), T52, X93, .(T50, T51)) → U1_AAAG(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
APPA_IN_AAAG(.(T50, X92), T52, X93, .(T50, T51)) → APPA_IN_AAAG(X92, T52, X93, T51)
PERME_IN_GA(.(T24, T25), .(T26, T33)) → U5_GA(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_GA(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → APPC_IN_GGGA(T24, T31, T32, X9)
APPC_IN_GGGA(T87, T88, T89, .(T87, X151)) → U3_GGGA(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
APPC_IN_GGGA(T87, T88, T89, .(T87, X151)) → APPB_IN_GGA(T88, T89, X151)
APPB_IN_GGA(.(T105, T106), T107, .(T105, X181)) → U2_GGA(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
APPB_IN_GGA(.(T105, T106), T107, .(T105, X181)) → APPB_IN_GGA(T106, T107, X181)
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_GA(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_GA(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_GA(T24, T25, T26, T33, permE_in_ga(T65, T33))
U7_GA(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → PERME_IN_GA(T65, T33)
PERME_IN_GA(.(T125, T126), .(T125, T127)) → U9_GA(T125, T126, T127, appD_in_ga(T126, X9))
PERME_IN_GA(.(T125, T126), .(T125, T127)) → APPD_IN_GA(T126, X9)
PERME_IN_GA(.(T125, T126), .(T125, T127)) → U10_GA(T125, T126, T127, appD_in_ga(T126, T128))
U10_GA(T125, T126, T127, appD_out_ga(T126, T128)) → U11_GA(T125, T126, T127, permE_in_ga(T128, T127))
U10_GA(T125, T126, T127, appD_out_ga(T126, T128)) → PERME_IN_GA(T128, T127)

The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U4_GA(x1, x2, x3, x4, x5)  =  U4_GA(x5)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x6)
U5_GA(x1, x2, x3, x4, x5)  =  U5_GA(x1, x5)
U6_GA(x1, x2, x3, x4, x5)  =  U6_GA(x5)
APPC_IN_GGGA(x1, x2, x3, x4)  =  APPC_IN_GGGA(x1, x2, x3)
U3_GGGA(x1, x2, x3, x4, x5)  =  U3_GGGA(x1, x5)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5)  =  U2_GGA(x1, x5)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x5)
U9_GA(x1, x2, x3, x4)  =  U9_GA(x4)
APPD_IN_GA(x1, x2)  =  APPD_IN_GA(x1)
U10_GA(x1, x2, x3, x4)  =  U10_GA(x4)
U11_GA(x1, x2, x3, x4)  =  U11_GA(x4)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 12 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPB_IN_GGA(.(T105, T106), T107, .(T105, X181)) → APPB_IN_GGA(T106, T107, X181)

The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPB_IN_GGA(.(T105, T106), T107, .(T105, X181)) → APPB_IN_GGA(T106, T107, X181)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPB_IN_GGA(.(T105, T106), T107) → APPB_IN_GGA(T106, T107)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPB_IN_GGA(.(T105, T106), T107) → APPB_IN_GGA(T106, T107)
    The graph contains the following edges 1 > 1, 2 >= 2

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPA_IN_AAAG(.(T50, X92), T52, X93, .(T50, T51)) → APPA_IN_AAAG(X92, T52, X93, T51)

The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPA_IN_AAAG(.(T50, X92), T52, X93, .(T50, T51)) → APPA_IN_AAAG(X92, T52, X93, T51)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPA_IN_AAAG(.(T50, T51)) → APPA_IN_AAAG(T51)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPA_IN_AAAG(.(T50, T51)) → APPA_IN_AAAG(T51)
    The graph contains the following edges 1 > 1

(22) YES

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T24, T25), .(T26, T33)) → U5_GA(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_GA(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_GA(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → PERME_IN_GA(T65, T33)
PERME_IN_GA(.(T125, T126), .(T125, T127)) → U10_GA(T125, T126, T127, appD_in_ga(T126, T128))
U10_GA(T125, T126, T127, appD_out_ga(T126, T128)) → PERME_IN_GA(T128, T127)

The TRS R consists of the following rules:

permE_in_ga(.(T24, T25), .(T26, T27)) → U4_ga(T24, T25, T26, T27, appA_in_aaag(X43, T26, X44, T25))
appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U4_ga(T24, T25, T26, T27, appA_out_aaag(X43, T26, X44, T25)) → permE_out_ga(.(T24, T25), .(T26, T27))
permE_in_ga(.(T24, T25), .(T26, T33)) → U5_ga(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U6_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, X9))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
U6_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, X9)) → permE_out_ga(.(T24, T25), .(T26, T33))
U5_ga(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_ga(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_ga(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → U8_ga(T24, T25, T26, T33, permE_in_ga(T65, T33))
permE_in_ga(.(T125, T126), .(T125, T127)) → U9_ga(T125, T126, T127, appD_in_ga(T126, X9))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U9_ga(T125, T126, T127, appD_out_ga(T126, X9)) → permE_out_ga(.(T125, T126), .(T125, T127))
permE_in_ga(.(T125, T126), .(T125, T127)) → U10_ga(T125, T126, T127, appD_in_ga(T126, T128))
U10_ga(T125, T126, T127, appD_out_ga(T126, T128)) → U11_ga(T125, T126, T127, permE_in_ga(T128, T127))
permE_in_ga([], []) → permE_out_ga([], [])
U11_ga(T125, T126, T127, permE_out_ga(T128, T127)) → permE_out_ga(.(T125, T126), .(T125, T127))
U8_ga(T24, T25, T26, T33, permE_out_ga(T65, T33)) → permE_out_ga(.(T24, T25), .(T26, T33))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4, x5)  =  U4_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
permE_out_ga(x1, x2)  =  permE_out_ga
U5_ga(x1, x2, x3, x4, x5)  =  U5_ga(x1, x5)
U6_ga(x1, x2, x3, x4, x5)  =  U6_ga(x5)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x5)
U9_ga(x1, x2, x3, x4)  =  U9_ga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
U10_ga(x1, x2, x3, x4)  =  U10_ga(x4)
U11_ga(x1, x2, x3, x4)  =  U11_ga(x4)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U5_GA(x1, x2, x3, x4, x5)  =  U5_GA(x1, x5)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
U10_GA(x1, x2, x3, x4)  =  U10_GA(x4)

We have to consider all (P,R,Pi)-chains

(24) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(25) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T24, T25), .(T26, T33)) → U5_GA(T24, T25, T26, T33, appA_in_aaag(T31, T26, T32, T25))
U5_GA(T24, T25, T26, T33, appA_out_aaag(T31, T26, T32, T25)) → U7_GA(T24, T25, T26, T33, appC_in_ggga(T24, T31, T32, T65))
U7_GA(T24, T25, T26, T33, appC_out_ggga(T24, T31, T32, T65)) → PERME_IN_GA(T65, T33)
PERME_IN_GA(.(T125, T126), .(T125, T127)) → U10_GA(T125, T126, T127, appD_in_ga(T126, T128))
U10_GA(T125, T126, T127, appD_out_ga(T126, T128)) → PERME_IN_GA(T128, T127)

The TRS R consists of the following rules:

appA_in_aaag(.(T50, X92), T52, X93, .(T50, T51)) → U1_aaag(T50, X92, T52, X93, T51, appA_in_aaag(X92, T52, X93, T51))
appA_in_aaag([], T60, T61, .(T60, T61)) → appA_out_aaag([], T60, T61, .(T60, T61))
appC_in_ggga(T87, T88, T89, .(T87, X151)) → U3_ggga(T87, T88, T89, X151, appB_in_gga(T88, T89, X151))
appD_in_ga(T131, T131) → appD_out_ga(T131, T131)
U1_aaag(T50, X92, T52, X93, T51, appA_out_aaag(X92, T52, X93, T51)) → appA_out_aaag(.(T50, X92), T52, X93, .(T50, T51))
U3_ggga(T87, T88, T89, X151, appB_out_gga(T88, T89, X151)) → appC_out_ggga(T87, T88, T89, .(T87, X151))
appB_in_gga(.(T105, T106), T107, .(T105, X181)) → U2_gga(T105, T106, T107, X181, appB_in_gga(T106, T107, X181))
appB_in_gga([], T113, T113) → appB_out_gga([], T113, T113)
U2_gga(T105, T106, T107, X181, appB_out_gga(T106, T107, X181)) → appB_out_gga(.(T105, T106), T107, .(T105, X181))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
appC_in_ggga(x1, x2, x3, x4)  =  appC_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
[]  =  []
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
appC_out_ggga(x1, x2, x3, x4)  =  appC_out_ggga(x4)
appD_in_ga(x1, x2)  =  appD_in_ga(x1)
appD_out_ga(x1, x2)  =  appD_out_ga(x2)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U5_GA(x1, x2, x3, x4, x5)  =  U5_GA(x1, x5)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
U10_GA(x1, x2, x3, x4)  =  U10_GA(x4)

We have to consider all (P,R,Pi)-chains

(26) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T24, T25)) → U5_GA(T24, appA_in_aaag(T25))
U5_GA(T24, appA_out_aaag(T31, T26, T32)) → U7_GA(appC_in_ggga(T24, T31, T32))
U7_GA(appC_out_ggga(T65)) → PERME_IN_GA(T65)
PERME_IN_GA(.(T125, T126)) → U10_GA(appD_in_ga(T126))
U10_GA(appD_out_ga(T128)) → PERME_IN_GA(T128)

The TRS R consists of the following rules:

appA_in_aaag(.(T50, T51)) → U1_aaag(T50, appA_in_aaag(T51))
appA_in_aaag(.(T60, T61)) → appA_out_aaag([], T60, T61)
appC_in_ggga(T87, T88, T89) → U3_ggga(T87, appB_in_gga(T88, T89))
appD_in_ga(T131) → appD_out_ga(T131)
U1_aaag(T50, appA_out_aaag(X92, T52, X93)) → appA_out_aaag(.(T50, X92), T52, X93)
U3_ggga(T87, appB_out_gga(X151)) → appC_out_ggga(.(T87, X151))
appB_in_gga(.(T105, T106), T107) → U2_gga(T105, appB_in_gga(T106, T107))
appB_in_gga([], T113) → appB_out_gga(T113)
U2_gga(T105, appB_out_gga(X181)) → appB_out_gga(.(T105, X181))

The set Q consists of the following terms:

appA_in_aaag(x0)
appC_in_ggga(x0, x1, x2)
appD_in_ga(x0)
U1_aaag(x0, x1)
U3_ggga(x0, x1)
appB_in_gga(x0, x1)
U2_gga(x0, x1)

We have to consider all (P,Q,R)-chains.

(28) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

PERME_IN_GA(.(T24, T25)) → U5_GA(T24, appA_in_aaag(T25))
U5_GA(T24, appA_out_aaag(T31, T26, T32)) → U7_GA(appC_in_ggga(T24, T31, T32))
U7_GA(appC_out_ggga(T65)) → PERME_IN_GA(T65)
PERME_IN_GA(.(T125, T126)) → U10_GA(appD_in_ga(T126))
U10_GA(appD_out_ga(T128)) → PERME_IN_GA(T128)

Strictly oriented rules of the TRS R:

appA_in_aaag(.(T50, T51)) → U1_aaag(T50, appA_in_aaag(T51))
appA_in_aaag(.(T60, T61)) → appA_out_aaag([], T60, T61)
appC_in_ggga(T87, T88, T89) → U3_ggga(T87, appB_in_gga(T88, T89))
appD_in_ga(T131) → appD_out_ga(T131)
U1_aaag(T50, appA_out_aaag(X92, T52, X93)) → appA_out_aaag(.(T50, X92), T52, X93)
U3_ggga(T87, appB_out_gga(X151)) → appC_out_ggga(.(T87, X151))
appB_in_gga(.(T105, T106), T107) → U2_gga(T105, appB_in_gga(T106, T107))
appB_in_gga([], T113) → appB_out_gga(T113)
U2_gga(T105, appB_out_gga(X181)) → appB_out_gga(.(T105, X181))

Used ordering: Knuth-Bendix order [KBO] with precedence:
U10GA1 > appCinggga3 > U3ggga2 > U5GA2 > appBingga2 > U7GA1 > PERMEINGA1 > appAinaaag1 > U1aaag2 > U2gga2 > appCoutggga1 > appBoutgga1 > appAoutaaag3 > appDinga1 > appDoutga1 > [] > .2

and weight map:

[]=5
appA_in_aaag_1=3
appD_in_ga_1=2
appD_out_ga_1=1
appB_out_gga_1=5
appC_out_ggga_1=3
PERME_IN_GA_1=4
U7_GA_1=1
U10_GA_1=3
._2=2
U1_aaag_2=2
appA_out_aaag_3=0
appC_in_ggga_3=0
U3_ggga_2=0
appB_in_gga_2=0
U2_gga_2=2
U5_GA_2=0

The variable weight is 1

(29) Obligation:

Q DP problem:
P is empty.
R is empty.
The set Q consists of the following terms:

appA_in_aaag(x0)
appC_in_ggga(x0, x1, x2)
appD_in_ga(x0)
U1_aaag(x0, x1)
U3_ggga(x0, x1)
appB_in_gga(x0, x1)
U2_gga(x0, x1)

We have to consider all (P,Q,R)-chains.

(30) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(31) YES